# 演示集合常用操作
# #定义集合
basket = {'apple', 'orange', 'apple', 'peap', 'orange', 'banana'}
# 1 len(集合):集合元素个数
print("basket的元素个数:", len(basket))  # 返回的结果会自动的去重后的结果

# #2 xin s:检测x 是否为s 中的成员
# 需求:判断apple是否在集合中
print("apple" in basket)

# 将3 add(elem):将元素elem 添加到集合中
# 需求:将grape添加到集合中并
basket.add("grape")  # 插入的位置是随机的
print("basket的元素:", basket)

# 4 remove(elem): 从集合中移除元素 elem.
# 如果 elem 不存在于集合中则会引发 KeyError
# 需求:将 apple从集合删除
basket.remove("apple")
print("basket的元素:", basket)

# 5 pop():从集合中移除并返回任意一个元素。
# 如果集合为空则会引发KeyError并
# 需求:从集合中随机删除一个元素井
element = basket.pop()
print("ele:", element, "类型是:", type(element))
# 注意pop()操作会影响到原集合
print("basket的元素:", basket)  # 只有三个元素

# 6.union(other):返回一个包含集合所有元素的新集合
# 相当于求并集
books = {'天龙八部', '笑傲江湖'}
books_2 = {'雪山飞狐', '神雕侠侣', '天龙八部'}
# 需求:将books 和 books_2 进行合集操作[即:求出在books集合或者在books_2集合的元素]
books_3 = books.union(books_2)
# books_3 = books | books_2 这种写法和上面的那种写法是等价的
print("books_3:", books_3)

# 7.intersection(*others):返回一个新集台，
#  相当于求交集
# 其中包含原集合以及 others 指定的所有集合中共有的元素
# 需求:对 books 和 books_2 求交集[即:求出既在books又在books_2集合的元素]
book4 = books.intersection(books_2)
# book4 = books & books_2 这种写法和上面的那种写法是等价的
print("book4:", book4)

# 8.difference(*others):返回一个新集合，
# 相当于求差集
# 其中包含原集合中，但不在 others 指定的所有集合中的元素
# 需求:对 books 和 books_2 求差集[即:求出在books集合中，books_2集合中没有的元素]
book5 = books.difference(books_2)
# book5 = books - books_2 这种写法和上面的那种写法是等价的
print("book5:", book5)
